package com.neusoft.neuiotms.dcvm.service;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public interface StatisticService {
    /**
     * 模具数量
     *
     * @return
     */
    long countOfModels();

    /**
     * 位置数量
     *
     * @return
     */
    long countOfLocations();

    /**
     * 模型数量
     *
     * @return
     */
    long countOfSchemas();

    /**
     * 资产总数
     *
     * @return
     */
    long countOfAssets();

    /**
     * IT资产总数
     *
     * @return
     */
    long countOfItAssets();

    /**
     * 配电柜总数
     *
     * @return
     */
    long countOfPdgs();

    /**
     * 机柜使用率统计
     *
     * @param PosCode
     * @return
     */
    JSONObject rack(String PosCode);

    /**
     * 机柜类型率统计
     *
     * @param PosCode
     * @return
     */
    JSONObject rackType(String PosCode);

    /**
     * 机柜u位统计
     *
     * @param PosCode
     * @return
     */
    JSONObject u(String PosCode);

    /**
     * 数据中心网络流量统计
     *
     * @param PosCode
     * @return
     */
    JSONObject netflow(String PosCode);

    /**
     * 机房租赁KPI统计
     *
     * @param posCode
     * @return
     */
    JSONArray getLBKpi(String posCode);

    /**
     * 机房机柜占用状态统计
     *
     * @param posCode
     * @return
     */
    JSONArray getLBRackStatus(String posCode);

    /**
     * 机房U位使用状态统计
     *
     * @param posCode
     * @return
     */
    JSONArray getLBUStatus(String posCode);

    /**
     * 根据位置获取客户列表
     *
     * @param posCode
     * @return
     */
    JSONArray getLBCustoms(String posCode);

    /**
     * 根据位置获取业务列表
     *
     * @param posCode
     * @return
     */
    JSONArray getLBIndents(String posCode);

    /**
     * 根据位置获取机柜内租赁详情分布
     *
     * @param posCode
     * @return
     */
    JSONArray getLBDetail(String posCode);

    /**
     * 根据位置编码和业务类型名称获取客户数及业务数量
     *
     * @param posCode
     * @param rackTypeName
     * @return
     */
    JSONArray getLBCustAndIndent(String posCode, String rackTypeName);
}
